#ifndef _POOL3D_H_
#define _POOL3D_H_
#include <hls_stream.h>
#include <ap_axi_sdata.h>
#include <ap_int.h>
#define MAX(A,B) ((A>B)?A:B)
#define BUFFER_DEPTH 60
#define K 8
typedef ap_int<16> d_type;
typedef ap_int<16*K> b_type;
typedef ap_axis<16,2,5,6> D_TYPE;
typedef ap_axis<16*K,2,5,6> BUS_TYPE;
void pool3d(hls::stream<BUS_TYPE> &in_stream,hls::stream<BUS_TYPE> &out_stream,int ch_div_K,int height_in,int width_in,int height_out,int width_out,int kx,int sx);
void pool_s1(hls::stream<BUS_TYPE> &in_stream,hls::stream<BUS_TYPE> &temp_stream,int ch_div_K,int height_in,int width_in,int kx,int sx);
void pool_s2();
#endif
